import re
import jieba

# 模拟一份裁判文书（实际中可从文件读取）
text = """
（一）经审理查明：
2023年5月10日，张三在北京朝阳区与李四发生争执，导致李四受伤。张三被警方带走调查。

（二）本院认为：
张三的行为构成故意伤害罪，依据《中华人民共和国刑法》第234条，判决如下：

（三）判决如下：
被告人张三犯故意伤害罪，判处有期徒刑一年。
"""

# 定义常见裁判文书标题标记
SECTION_MARKERS = [
    "经审理查明", "审理查明", 
    "本院认为", "法院认为",
    "判决如下", "裁定如下"
]

def split_judgment_text(text, section_markers=SECTION_MARKERS):
    # 第一步：按标题标记分割大块
    sections = []
    for marker in section_markers:
        pattern = re.compile(f"({marker}[^。]*\n)", re.DOTALL)  # 匹配标题及后续内容直到换行
        parts = pattern.split(text)
        if len(parts) > 1:
            sections.extend(parts)
            break  # 只匹配第一个标记，避免重复分割
    else:
        # 如果没有找到标题标记，直接返回原文
        return [text]
    
    # 第二步：对未明确标题的部分按句号分割
    result = []
    for part in sections:
        if any(marker in part for marker in section_markers):
            result.append(part.strip())
        else:
            # 使用jieba分句（也可用其他分句工具）
            sentences = [s + "。" for s in re.split(r'([。；！？])', part) if s.strip()]
            result.extend(s for s in sentences if s.strip())
    return result

# 执行分割
chunks = split_judgment_text(text)

# 输出结果
for i, chunk in enumerate(chunks):
    print(f"[Chunk {i+1}]\n{chunk}\n{'-'*30}")
